home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 101-125 / scopedisk120 / iconj / iconj.doc < prev    next >
Text File  |  1995-03-19  |  30KB  |  606 lines

  1.     ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©
  2.  
  3.     IconJ and AtatJ, version 1.0, © 1990 by Rich Franzen
  4.  
  5.     Programs and/or source code may be freely disseminated so long as
  6.     only a small (if any) charge is made to cover costs.  The executable
  7.     files are not to be altered; the source code may be modified so long
  8.     as it is clearly labeled as to the modification's source and purpose.
  9.     The IconJ program may be included with commercial software packages
  10.     so long as no additional charge is made for its inclusion and I
  11.     (Rich Franzen) am given credit as its author.  (I would appreciate
  12.     notification if IconJ is so included, but this is not required.  An
  13.     offer of a discount to a commercial package which includes IconJ
  14.     would also be appreciated, but this is certainly not required
  15.     either.)  I reserve the right to limit the distribution of any later
  16.     version of IconJ or AtatJ.  Attempts by third parties, however, to
  17.     limit/redefine this distribution are null, void, hubristic, and
  18.     laughable.
  19.  
  20.     This software is provided "as is".  Although every effort has been
  21.     made to have it function in accord with this document, the author
  22.     shall not be responsible for problems users may experience with it.
  23.  
  24.     ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©
  25.  
  26.  
  27. INTRODUCTION TO IconJ AND AtatJ
  28.  
  29.     IconJ is a Workbench (WB, ® Commodore-Amiga) utility that allows
  30. execution of scripts (aka "batch files") by clicking an icon assigned to
  31. that script.  Workbench already provides a pretty-good utility, called
  32. IconX, for this purpose.  Sometimes, however, "pretty-good" is not good
  33. enough.  IconX has the following limitations:
  34.  
  35.     1) its output cannot be sent to files
  36.     2) it does not provide full support for conditional execution
  37.     3) it does not allow interaction by the user from the keyboard
  38.     4) it will not execute ARexx (® William S. Hawes) scripts
  39.  
  40. These limitations can all be solved in an indirect manner.  Namely, the
  41. IconX script can execute a second script, and that script would provide
  42. full flexibility.
  43.  
  44.     The indirect solution is not ideal, however.  It calls for at least
  45. three files to do one thing:  the main script, the called script, and the
  46. icon file associated with the main script.  These scripts are often
  47. involved in setting up an environment for running a machine-language
  48. program, which would be a fourth file.  AmigaDOS ® diskettes and hard
  49. drives are not really efficient with their directory structures to begin
  50. with, and all these extra files add to that problem.  This is all made
  51. worse by the fact that a fundamental feature of Workbench is lost when the
  52. third or fourth file is added to the set--it cannot be "dragged" somewhere
  53. else without losing part of itself!
  54.  
  55. IconJ and AtatJ Manual                                               Page  1
  56. BEYOND PRETTY-GOOD
  57.  
  58.     So, IconJ was born.  I had several goals when writing it:
  59.  
  60.     1) to be 100% compatibile with IconX
  61.     2) to overcome the limitations of IconX
  62.     3) to allow a script to function identically from Workbench
  63.        as it would from a cli (command line interface)
  64.     4) (personal) to begin to learn how to program the Amiga
  65.  
  66. Additionally, I added increased functionality by allowing the script to be
  67. located in a file anywhere in the Amiga system, even in the icon file
  68. itself!  The "J" at the end of IconJ represents the ability to "join" a
  69. script onto the end of the icon file.  (It could also mean that the program
  70. is written in JForth (® Delta Research), but this may be just a happy
  71. coincidence.)  Each Workbench icon represents two files, namely the actual
  72. file whose name appears below the icon and the file which contains the
  73. iconic picture displayed on the screen.  For the remainder of this
  74. document, I will call the icon file the ".info" file and the file which is
  75. not the ".info" file the "~info" file ("dot-info" and "not-info"--hey, I'm
  76. a programmer; we've got a license to name things like this!).
  77.  
  78.     The script is not required to be part of the .info file (which would
  79. make IconJ incompatible with IconX); indeed, most of the time you will be
  80. better off with the script separate, usually as the ~info brother. 
  81. Sometimes the script will better belong in a different directory than that
  82. of the icon.  For example, if the "S:" directory is in your cli search path,
  83. you may want a script there but still desire the ability to activate it
  84. from Workbench.
  85.  
  86.     A case when it is desirable to have the script attached to the icon is
  87. when there is a machine language program which requires set-up before it is
  88. activated.  For example, I normally use BlitzDisk (® Microsmiths, Inc) to
  89. speed up my floppy access.  I also occasionally use a program called B.A.D.
  90. (® M.V. Micro) which restructures a diskette to be more efficient. 
  91. BlitzDisk and B.A.D. don't like each other; if B.A.D. is run with BlitzDisk
  92. active, my Amiga will crash.  The solution was to have a script for B.A.D.
  93. that shut off BlitzDisk, executed B.A.D., and turned BlitzDisk back on when
  94. B.A.D. finished.  This works fine, even with IconX, except that I can no
  95. longer drag B.A.D. from drawer to drawer--I only move the icon and the
  96. script; B.A.D. itself stays wherever it was.  With IconJ, that short little
  97. script can be part of the icon for B.A.D., and the ability to drag the file
  98. around is restored.
  99.  
  100.     A short script (the example above is three lines) can easily be added
  101. to the icon with the "Info" tool available from the Workbench menu.  The
  102. .info file must be type "project", which means that the icon actually
  103. activates two files when double-clicked.  The first is the one in the
  104. "default tool" box of the Info window, and the second, which is acted on by
  105. the first, is the file associated with the icon (in our case, a script). 
  106.  
  107.  
  108.  
  109.  
  110. IconJ and AtatJ Manual                                               Page  2
  111. To get the project icon to run an attached script, "c:IconJ" is written in
  112. the "default tool" box.  Then the "tool types" box is manipulated to add
  113. several lines at the end of any existing tool types.  To tell IconJ that
  114. the script is joined with the icon, a "SCRIPT=" tool type must be written,
  115. saying something like "SCRIPT=.info".  Then IconJ will know that each tool
  116. type which follows the SCRIPT= tool is actually a line of the script it is
  117. to execute.
  118.  
  119.     What follows is a very simplified Info screen for a project icon
  120. containing an internal script.  In reality, only one tool type is visible
  121. at a time (accessed via the up/down gadgets), but this example pretends you
  122. can see them all at once.  Note that IconJ requires no tool types at all;
  123. everything has a default.  Also, standard tool types that IconJ does not
  124. understand, such as "FILETYPE=TEXT", can be included if desired.  The only
  125. restriction is that if "SCRIPT=.info" is specified (perhaps with one or
  126. more switches), it must be the last of the formal tool types.  All lines
  127. that follow it will be treated as part of your script.
  128.  
  129.     COMMENT     B.A.D. (Blitz-A-Disk), © 1988 MV Micro, v3.11
  130.   DEFAULT TOOL  c:IconJ
  131.   TOOL TYPE  ;  DELAY=150                    [ADD] [DEL]
  132.         WINDOW=100/10/440/40/ B.A.D. 
  133.         SCRIPT=.info
  134.         BD2 quit        ;quit BlitzDisk
  135.         BAD             ;holds window until thru
  136.         BD2 500 nochip  ;restart BD (detaches itself from window)
  137.  
  138.     "Editing" with Info is sometimes tricky.  For example, the [ADD] button
  139. at the end of the tool type line only adds a line _after_ the present line;
  140. there is no facility for making a blank line before the current line.  This
  141. really only matters if you want to ADD a line before the first line.  In
  142. this case, use the arrow gadgets (they look suspiciously like a semi-colon
  143. here) to space up to the first line and click ADD.  Type what was in the
  144. first line in the new second line.  Finally, click the up gadget once, clear
  145. the old text with <Rt.Amiga>-X, and type in what you wanted to be first. 
  146. I have adopted the habit of always hitting the <RETURN> key to complete any
  147. line I edit; this may not be necessary, but Info is sometimes flaky and
  148. this seems to reduce the flakiness.  Also any tool type line can be
  149. arbitrarily long; the text will begin scrolling sideways when you reach the
  150. end of the text window.  <Shift><Lt.Arrow> and <Shift><Rt.Arrow> may be
  151. used to jump from one end of the text to the other.  There is an "unDo"
  152. facility:  typing <Rt.Amiga>-Q will restore the line to what it was before
  153. you messed with it.
  154.  
  155.     Note that the Info tool was never meant to be an editor.  If your
  156. script is longer than five lines or so, you don't want to add it in this
  157. manner.  At least I didn't, so I wrote AtatJ.  AtatJ is a cli utility that
  158. will automatically attach (or detach--sometimes you might want the script
  159. back!) a script to a project icon.  In the simplest case, when attaching
  160. a ~info to its .info, the command would be "atatj MyScript".  This would
  161. attach the script named "MyScript" to the icon named "MyScript.info". 
  162. "MyScript" would still exist; it is not automatically deleted.  AtatJ will
  163. be discussed more fully in the detailed stuff to follow.
  164.  
  165. IconJ and AtatJ Manual                                               Page  3
  166. THE DETAILED STUFF--IconJ
  167.  
  168.     There are four tool types of which IconJ is aware.  Two of them, DELAY=
  169. and WINDOW=, are known to IconX also.  Various "switches" (all optional)
  170. will be listed with each tool type description.  These switches are case-
  171. sensitive due to the way icon.library operates.  My convention for
  172. capitalization follows Commodore's example--most of the things IconJ
  173. understands are required to be all capital letters.  Lower case is required
  174. only by the two "place-holder" file names, "~info" and ".info" (these are
  175. discussed with the SCRIPT= tool).  True file names, including window
  176. specifications, may be any combination of upper and lower case.
  177.  
  178.     Each tool type is described below.
  179.  
  180.  
  181.     DELAY=(numeric parameter)
  182.         The DELAY= tool type specifies how long, in "ticks", to wait
  183.         after the script is completed before closing the window which
  184.         IconJ opened up.  A tick is 1/50 of a second; thus, "DELAY=125"
  185.         would cause a 2.5 second delay.  When describing IconX, the
  186.         AmigaDOS 1.3 _Enhancer_Manual_ says that a delay of 0 causes the
  187.         window to remain open until ^C is entered from the keyboard.
  188.         This does not happen; a delay of 0 causes the window to be
  189.         closed without any delay.  IconJ follows this behavior of IconX.
  190.         When the DELAY= tool is absent, delay defaults to 2 seconds.
  191.         The presence or absence of the DELAY= tool controls whether an
  192.         interactive console automatically closes or remains as a cli.
  193.         (See the discussion of the CLI switch below (with SCRIPT=).)
  194.  
  195.  
  196.     WINDOW=(console window specification OR output file name)
  197.         A console window is a text window like that in which the cli or
  198.         shell functions.  Scripts require output to go somewhere
  199.         (normally a console, but perhaps a file or device), and
  200.         many scripts rely on a console for keyboard input.  There are
  201.         several different kinds of consoles, the three main ones being
  202.         "CON:", "NEWCON:", and "RAW:".  The specification for a console
  203.         includes three parts:  which console, how big and where to put
  204.         the window, and the window's name.  For example, the default
  205.         console specification (spec) when the WINDOW= tool is absent is:
  206.         CON:0/50/640/80/IconJ
  207.         This tells the Amiga to open a console of type CON: at the left
  208.         edge of the Workbench screen and 50 pixels down.  Make the
  209.         window 640 pixels wide and 80 pixels high, and name it "IconJ".
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220. IconJ and AtatJ Manual                                               Page  4
  221.     Relative Window Specification
  222.         IconJ significantly extends the window specification to allow
  223.         for "relative" positions and sizes.  Relative to what?--The
  224.         Workbench screen.  Many US users assume that the Workbench is
  225.         always 640x200; some know they can get an interlaced Workbench
  226.         of 640x400.  In Europe, however, a different video standard
  227.         is used which provides many more lines (but more flicker when
  228.         interlaced).  Additionally, there are several programs that
  229.         allow for a wide latitude in setting Workbench size.  This will
  230.         get even more complex when WB 1.4 and the enhanced chip
  231.         set are released.  The point to this is that having absolute
  232.         literal numbers within the console spec limits its utility.
  233.  
  234.         I have added two operators to the numeric parts of the console
  235.         specification, "-" and ".".  The "-" operator interprets the
  236.         following number as negative and to be subtracted from the full
  237.         Workbench dimension.  So the left-edge and window-width numbers
  238.         would be subtracted from the WB width, and the top-edge and
  239.         window-height numbers would be subtracted from WB height.  The
  240.         "." operator interprets the following number as if it is a
  241.         fraction of the full WB dimension.  If the fraction is greater
  242.         than or equal to one, then 100% of the given WB dimension is
  243.         used.  The two operators may be mixed in any or all of the four
  244.         numeric fields, and some fields may be relative while others
  245.         are absolute.  Nonsense specs are overridden, and the smallest
  246.         allowable size is 50 wide by 20 high.  An example of a
  247.         relative console is:
  248.         CON:.25/1/-.3/-1/I'm_Relative
  249.         With a 700x480 WB screen, this would be interpreted as:
  250.         left edge = 700 * .25 = 175
  251.         top edge  = 1
  252.         width     = 700 - (700 * .3) = 700 - 210 = 490
  253.         height    = 480 - 1 = 479
  254.         I don't know that it is useful to allow negative fractions, but
  255.         it does make sense mathematically.  Besides, there was no
  256.         reason to forbid it.  Note that there is a huge difference
  257.         between "/1/" and "/1./"--the second case is hundreds of times
  258.         larger than the first!
  259.  
  260.     Alternative Output
  261.         IconX has an undocumented feature which allows the WINDOW= tool
  262.         to specify "prt:", in which case script output goes to the
  263.         printer; no console window is used.  IconJ allows this also,
  264.         but extends the concept to allow output to any file or device
  265.         which can be opened to receive text.  If for some reason the
  266.         file/device cannot be opened (eg protected disk), IconJ output
  267.         is directed to its default console window.  It may sometimes be
  268.         useful to have no output at all, in which case the Amiga device
  269.         "nil:" would be specified.  Whenever something other than a
  270.         console window is used, the script should not be interactive;
  271.         a CLI switch within the SCRIPT= tool will be overridden.
  272.  
  273.  
  274.  
  275. IconJ and AtatJ Manual                                               Page  5
  276.     WINDOW examples:
  277.         WINDOW=con:0/50/640/80/IconJ
  278.         WINDOW=newcon:.1/10/.8/-20/Centered Window
  279.         WINDOW=prt:
  280.         WINDOW=nil:
  281.         WINDOW=pipe:pipename
  282.         WINDOW=catalogs:Jan90/latest_from_IconJ
  283.       (note that the "pipe:" and "newcon:" examples would require
  284.        that these devices be specifically mounted beforehand)
  285.  
  286.     Conman notes
  287.         If you use Bill Hawes excellent shareware "con:" replacement,
  288.         conman, the power of the console window will be automatically
  289.         increased.  Conman allows a set of switches to follow the
  290.         window title text.  These switches allow for close boxes,
  291.         borderless windows, backdrop windows, etc.  Read your conman
  292.         documentation file for a complete list.  (I didn't plan for this
  293.         to happen--it just did.  Ain't multitaskin' great!?)  For the
  294.         specific case of a close box (or gadget), the shell within
  295.         the window must know about it.  For example, the Arp Shell
  296.         ignores it, while WShell, of course, specifically listens for
  297.         it.  (The advanced conman feature of placing a console on a
  298.         non-workbench screen is not allowed.)
  299.  
  300.       Conman examples:
  301.         WINDOW=con:0/20/640/100/ MyScript /nc
  302.         creates borderless window with a close gadget
  303.         WINDOW=con:0/0/1./1.//nbds
  304.         creates a nameless borderless backdrop window
  305.         without any gadgets at all
  306.  
  307.  
  308.     SCRIPT=(script_name|.info|~info) [REXX] [CLI] [STARTUP] [VIEW]
  309.         This tool type is what gives IconJ much of its power.  The
  310.         script name may be any full Amiga pathname, or ".info", or
  311.         "~info".  Note that IconJ automatically sets the current
  312.         directory to that which contains the icon, so sometimes a path
  313.         specification is superfluous.  One of the three "names" must be
  314.         present if SCRIPT= is specified; otherwise the first switch
  315.         encountered will be interpreted as the script name.  When
  316.         there is no SCRIPT= tool, this is equivalent to:
  317.         SCRIPT=~info
  318.  
  319.       The ~info argument is used when the script has the same name as
  320.         the icon file, but without the ".info" extension.  This is the
  321.         normal relationship of an icon to its associated file.
  322.       The .info argument tells IconJ that all following tool types are
  323.         actually the script it is to execute.  These tool types are
  324.         then extracted and put into a "real" but temporary file.  This
  325.         temporary file is created in one of four places.  The first is
  326.         the "T:" logical directory, which specifically exists for such
  327.         temporary scripts.  The standard WB Startup-Sequence script
  328.         assigns T: to ram:t, which is a good place for it.  Also good
  329.  
  330. IconJ and AtatJ Manual                                               Page  6
  331.         would be rad:t or vd0:t for those who prefer recoverable ram
  332.         disks.  If T: does not exist, the file then tries to be created
  333.         in the :t directory of the volume which contains the icon.  If
  334.         this volume is protected or does not contain a :t directory,
  335.         the file then tries to get created in the directory containing
  336.         the script.  And if that doesn't work, the file is arbitrarily
  337.         created at the top level of "RAM:".  I saved this location for
  338.         last because it will create "RAM:" if it wasn't already there.
  339.         The user may have reason not to want a ramdisk, but the script
  340.         needs to go somewhere!  If the file still can't get created,
  341.         IconJ decides that there is nothing it can do, so it terminates
  342.         cleanly.
  343.  
  344.       The REXX switch informs IconJ that the script is an ARexx
  345.         script.  IconJ then uses the "Rx" program to activate it. 
  346.         Otherwise the "Execute" program activates AmigaDOS scripts.
  347.       The CLI switch informs IconJ that the script requires keyboard
  348.         input.  The console window is made interactive in this case.
  349.         Closure of an interactive console is controlled by the DELAY=
  350.         tool.  The presence of this tool causes the console to close
  351.         automatically after the specified delay period.  Its absence,
  352.         however, causes an active shell or cli to remain even after the
  353.         script completes.  The "endcli" command must be given to
  354.         terminate the cli (or shell).  (If you use WShell and conman,
  355.         the WShell may be terminated by clicking the close gadget--other
  356.         advanced shells may also allow this.)  IconJ does not control
  357.         whether a cli or full shell opens.  This magic is controlled by
  358.         your system set-up.  If you have WShell installed, a WShell
  359.         will open--if you have ARP installed, either an ARP Shell or
  360.         AmigaDOS shell may open--if you have some other shell
  361.         installed, it may open.  The actual choice is made by either
  362.         the "c:Run" command or by a patch to the dos.library execute()
  363.         call.  Don't worry if this makes little sense; I don't
  364.         understand it either.  (I had expected to get a vanilla cli
  365.         (hence the switch name).  I was delighted upon realization that
  366.         a full ARP Shell opened instead.  Ain't multitaskin' great!?)
  367.       The STARTUP switch is used to execute the AmigaDOS script
  368.         "s:IconJ-Startup" prior to running your main ARexx or AmigaDOS
  369.         script.  This allows setting up an environment for the script
  370.         which the user normally expects, such as a group of paths to
  371.         use to find programs.  When a new shell or cli is started from
  372.         an existing shell, the paths known to the parent are inherited
  373.         by the child (WB 1.3 and above).  However, when a task is
  374.         started from Workbench, such as IconJ, it has no paths to
  375.         inherit.  The IconJ-Startup script can help correct for this
  376.         difference.  Note that IconJ-Startup should not itself require
  377.         interactive input from the keyboard, but the main script to
  378.         follow may.
  379.       The VIEW switch is mainly for debugging; it lists the command
  380.         string which is passed to the AmigaDOS execute() call.  You may
  381.         want to use it out of simple curiosity, to see what IconJ is
  382.         actually doing, but you will seldom need to.
  383.  
  384.  
  385. IconJ and AtatJ Manual                                               Page  7
  386.       Note that the "|" symbol is used within the tool types to separate
  387.         the various arguments and switches.  Switch order makes no
  388.         difference within the SCRIPT= tool (except that the script name
  389.         or .info or ~info must immediately follow the equals sign).
  390.         Several examples follow:
  391.         SCRIPT=s:ParkDisks
  392.         SCRIPT=marquis|REXX
  393.         SCRIPT=~info|CLI
  394.         SCRIPT=.info|REXX|VIEW
  395.         SCRIPT=:jobs/weekly/back-up|CLI|STARTUP
  396.  
  397.  
  398.     PATHS= [OFF] [SMART] [NOQUOTES] [NOCROP] [METOO]
  399.         This is a late addition to IconJ.  It is useful when you desire
  400.         to pass multiple files to your script.  Without this tool type,
  401.         each file would be expanded to include its entire pathname,
  402.         which is the action of IconX.  The AmigaDOS execute() command
  403.         has a length limitation of 255 bytes, so you can imagine that
  404.         if several icons were activated which were several directories
  405.         deep, 255 bytes might well be exceeded.  (IconX will actually
  406.         crash the system if it receives too many icons!)  Multiple
  407.         files are passed by using what Commodore calls "extended
  408.         selection".  First, the main icon (which calls IconJ) is clicked
  409.         once; then one or more other icons are clicked once each while
  410.         holding down the shift key.  (WB 1.4 may provide another way to
  411.         perform extended selection.)  When the final icon is clicked, it
  412.         is clicked twice, activating the first icon clicked and
  413.         remembering all the others as arguments.
  414.  
  415.       The OFF switch tells IconJ not to expand any filenames to their
  416.         full pathnames.  This allows the maximum number of files to be
  417.         passed to your script, but your script won't be able to find
  418.         them unless they are all in the same directory as the first
  419.         icon.
  420.       The SMART switch sometimes expands filenames.  It does so only
  421.         when it senses that the filename in question is not in the same
  422.         directory as the previous file.  Utilities such as "cd",
  423.         "TackOn", and "BaseName" can then be used in your script to
  424.         access the files successfully.  (TackOn and BaseName are part
  425.         of Arp 1.3.)
  426.       The NOQUOTES switch should only be used when you know for a fact
  427.         that none of your file names, directory names, or volume names
  428.         contain spaces.  Otherwise your script will fail when it
  429.         receives such a name.  Each pathname normally has quotes around
  430.         it to allow AmigaDOS to know where the argument divisions are.
  431.         NOQUOTES should not have been necessary; all Amiga programs and
  432.         tools should accept quoted pathnames to allow for spaces in
  433.         names.  Unfortunately, significant Amiga applications and
  434.         utilities exist which like neither quotes nor spaces.  Because
  435.         of such deficiencies, I had to institute this option.
  436.  
  437.  
  438.  
  439.  
  440. IconJ and AtatJ Manual                                               Page  8
  441.       The NOCROP switch is used when you have an environment that can
  442.         accept arbitrarily long commands.  The WShell package includes
  443.         a patch to execute() that will allow this; there may be others
  444.         that I am not aware of.  My hope is that the 255-character
  445.         command length limitation to execute() will be lifted by
  446.         Commodore when it releases WB 1.4.  With NOCROP specified,
  447.         IconJ is able to pass commands longer than 65,000 characters!
  448.       The METOO switch will pass a full pathname for ~info to the
  449.         script as its first parameter.  For example, if the .info file
  450.         were named "IconJ_Manual.info", and it were stored in drawer
  451.         "RAM:TextFiles", then the 1st parameter passed to the script
  452.         would be "RAM:TextFiles/IconJ_Manual".  This allows for a whole
  453.         class of generic scripts to be built that can be attached to
  454.         icons of different names, and still function properly.  Note
  455.         that the script will need a ".key" statement as its first line,
  456.         such as ".key myself/A".  Then, any occurrence within the script
  457.         of reference to "<myself>" will receive ~info.  Thus,
  458.         `type <myself>' would be replaced by
  459.         `type "RAM:TextFiles/IconJ_Manual"' for the example above.
  460.         If multiple selection is performed, the other files selected
  461.         will follow, and they will obey the SMART and OFF switches.
  462.         (METOO does obey the NOQUOTES directive, though.)
  463.  
  464.       PATHS examples:
  465.         PATHS=SMART
  466.         PATHS=OFF|METOO
  467.         PATHS=NOQUOTES|NOCROP
  468.         PATHS=NOCROP|SMART|METOO
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495. IconJ and AtatJ Manual                                               Page  9
  496. THE DETAILED STUFF--AtatJ
  497.  
  498.     While IconJ is a Workbench-only program, AtatJ is, naturally, a
  499. cli-only program.  It has the following command description:
  500.  
  501. Usage:  AtatJ ScriptFile [InfoFile] [-(r|c|s|d|dd)]
  502.         use r switch when ScriptFile is ARexx script
  503.         use c switch when ScriptFile requires keyboard input
  504.         use s switch when s:IconJ-Startup is be executed before ScriptFile
  505.         use  d switch when detaching script from InfoFile
  506.         use dd switch when duplicating script from InfoFile
  507.  
  508. When the InfoFile is not specified, its root name is assumed to be the
  509. ScriptFile's name (e.g. MyScript and MyScript.info).  If it is specifed,
  510. then the five-character ".info" extension is not necessary.  Full pathnames
  511. may be given for both ScriptFile and InfoFile.
  512.  
  513.     The switch field, if present, must begin with the "-" symbol.  The
  514. default operation of AtatJ is to join the ScriptFile with the InfoFile,
  515. leaving the ScriptFile intact.  The SCRIPT= tool type will be:
  516.     SCRIPT=.info
  517. The "r" switch will append "|REXX" to this SCRIPT= tool, the "c" switch
  518. will append "|CLI", and the "s" switch will append "|STARTUP".  The "r",
  519. "c", and "s" switches may be used together.  The "d" and "dd" switches
  520. should not be used in conjunction with the others (although the d's will
  521. override them).  Also, both upper and lower case are allowed for any of the
  522. switches.
  523.  
  524.     The single "d" switch detaches the script and writes it to ScriptFile. 
  525. If ScriptFile already exists, you will be asked if you want it overwritten.
  526. Any answer other than 'y' (yes) will abort the transfer.  Additionally, the
  527. SCRIPT= tool type is removed from the icon.  The "dd" switch (duplicating
  528. detach) simply makes a copy of the script from the InfoFile to the
  529. ScriptFile.  The InfoFile itself remains intact.
  530.  
  531.     There are two conditions which will terminate an attachment with no
  532. changes being saved.  The first is that the ScriptFile can contain no bytes
  533. of value 0 (ASCII <NULL>).  This prevents machine code and graphic/sound
  534. data files from being accidentally attached.  The second is that there must
  535. be at least one newline character (ASCII <LF>) every 256 bytes.  This
  536. prevents many kinds of non-script documents from being attached.  AtatJ
  537. makes no attempt to assure that the ScriptFile is a legal script.  That
  538. would be ... difficult.
  539.  
  540.     At the present time, there is a possible source of confusion when AtatJ
  541. is used.  If an icon appears on the Workbench screen, Workbench has its own
  542. private copy of that icon.  Unfortunately, this copy is inaccessible to
  543. AtatJ, and when a script is attached to or detached from a visible icon,
  544. only the copy on disk gets altered--Workbench's copy becomes out of date. 
  545. Closing and re-opening the drawer/disk containing the icon will force
  546. Workbench to refresh this information.  Workbench release 1.4 may fix this
  547. problem, so that the private Workbench copy will get updated at the same
  548. time as the disk copy.
  549.  
  550. IconJ and AtatJ Manual                                               Page 10
  551. INSTALLATION
  552.  
  553.     To install IconJ, simply copy it to your C: directory.  If you plan on
  554. using AtatJ frequently (or have lots of space on your hard drive), install
  555. it in C: also.  Otherwise, AtatJ may be stored on some accessible disk to
  556. use as needed.  If you plan on advanced use of IconJ, probably involving
  557. interactive shells, edit the "IconJ-Startup" file for your purposes and
  558. store it in your S: directory.
  559.  
  560.  
  561.  
  562. GRACIAS AMIGAS Y AMIGOS Y CP/M'ers TAMBIEN
  563.  
  564.     I've been using public domain software and "freeware" for over ten
  565. years now.  Thank you to all who share their work in this manner.  For a
  566. long time, I've wanted to pay them back (forward, as Robert Heinlein would
  567. have said), but it just never seemed to happen.  With IconJ, though, I now
  568. do so.  This is not "shareware"; I do not desire donations from those who
  569. use it.  I would be happy to receive comments and suggestions, however.
  570.  
  571.     A special thanks I give to my team of Beta testers.  Without their
  572. bug-finding and suggestions, IconJ and AtatJ would not be worth your using.
  573. (Only I can be blamed if bugs/flaws still remain, however!)  In
  574. alphabetical order, this dedicated team included:  David Zaroski, Jon Wolf,
  575. Donnie Mickish, Andy Levy, Bill Hawes, Bill Cavanaugh, Dan Brookshier, and
  576. Jim Biggs.
  577.  
  578.  
  579.     Sincerely,
  580.     Richard W. Franzen
  581.     1159 Sanddune Lane #107
  582.     Melbourne, FL  32935
  583.     5 February 1990
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605. IconJ and AtatJ Manual                                               Page 11
  606.